#pragma once

#include <ECS/ECS.h>
#include "../Types.h"

class SceneNode;

class Transform : public ECS::Component
{
	mtMETA_DEC;
public:
	Transform();
	virtual ~Transform();

	void setPosition(const Vector2& position);
	const Vector2& getPosition() const;

	float getRotation() const;
	void setRotation(float rotation);
	void setRotation(const Vector2& direction);

	float getScale() const;
	void setScale(float scale);
	void scale(float scale);
protected:
	Vector2 _position;
	float _rotation;
	float _scale;

	SceneNode* _sceneNode;

	SceneNode* getSceneNode() const;
};